home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 28
/
Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso
/
Aminet
/
game
/
board
/
Crafty-15.19.lha
/
crafty-15.19
/
src
/
chess.h
< prev
next >
Wrap
Text File
|
1998-09-13
|
44KB
|
1,093 lines
/*
********************************************************************************
* *
* configuration information: the following variables need to be set to *
* indicate the machine configuration/capabilities. *
* *
* there are pre-defined machine types for the following machines: (1) SUN *
* (2) DOS (3) ALPHA [DEC Alpha] (4) CRAY (5) LINUX. defining any of these *
* names will produce a runnable executable. for other machines, the names *
* explained below must be individually DEFINED or UNDEFINED as needed. *
* *
* HAS_64BITS: define this for a machine that has true 64-bit hardware *
* including leading-zero hardware, population count, etc. ie, a Cray-like *
* machine. *
* *
* HAS_LONGLONG: define this for a 32-bit machine with a compiler that *
* supports the long long (64-bit) integer data and allows bitwise operations *
* on this data type. this provides significantly faster execution time as *
* the bitwise operators are done by the compiler rather than by procedure *
* calls. *
* *
* LITTLE_ENDIAN_ARCH: define for a 32-bit machine that mangles the way data *
* is stored within a word. This is currently true for all PC class machines *
* and false for other processors used in current workstations (SUN, etc.) *
* *
* UNIX: define this if the program is being run on a unix-based system, *
* which causes the executable to use unix-specific runtime utilities. *
* *
* SMP: this enables the symmetric multiprocessing code that allows Crafty *
* to spawn threads and execute a parallel search. Note that if this is set, *
* then the next variable must be defined as well. *
* *
* CPUS=N: this sets up data structures to the appropriate size to support *
* up to N simultaneous search engines. note that you can set this to a *
* value larger than the max processors you currently have, because the mt=n *
* command (added to the command line or your crafty.rc/.craftyrc file) will *
* control how many threads are actually spawned. *
* *
********************************************************************************
*/
#if !defined(TYPES_INCLUDED)
#if !defined(CPUS)
# define CPUS 1
#endif
#if defined(SMP)
# if (defined(NT_i386) || defined(NT_AXP))
# include <windows.h>
# include <process.h>
# elif defined(LINUX) || defined(ALPHA) || defined(POSIX)
# include <pthread.h>
# endif
#endif
#define TYPES_INCLUDED
#if defined(AIX)
# undef HAS_64BITS /* machine has 64-bit integers / operators */
# define HAS_LONGLONG /* machine has 32-bit/64-bit integers */
# undef LITTLE_ENDIAN_ARCH /* machine stores bytes in "PC" order */
# define UNIX /* system is unix-based */
#endif
#if defined(ALPHA)
# define HAS_64BITS /* machine has 64-bit integers / operators */
# undef HAS_LONGLONG /* machine has 32-bit/64-bit integers */
# define LITTLE_ENDIAN_ARCH /* machine stores bytes in "PC" order */
# define UNIX /* system is unix-based */
#endif
#if defined(AMIGA)
# undef HAS_64BITS /* machine has 64-bit integers / operators */
# define HAS_LONGLONG /* machine has 32-bit/64-bit integers */
# undef LITTLE_ENDIAN_ARCH /* machine stores bytes in "PC" order */
# undef UNIX /* system is unix-based */
#endif
#if defined(CRAY1)
# define HAS_64BITS /* machine has 64-bit integers / operators */
# undef HAS_LONGLONG /* machine has 32-bit/64-bit integers */
# undef LITTLE_ENDIAN_ARCH /* machine stores bytes in "PC" order */
# define UNIX /* system is unix-based */
#endif
#if defined(DOS)
# undef HAS_64BITS /* machine has 64-bit integers / operators */
# define HAS_LONGLONG /* machine has 32-bit/64-bit integers */
# define LITTLE_ENDIAN_ARCH /* machine stores bytes in "PC" order */
# undef UNIX /* system is unix-based */
#endif
#if defined(FreeBSD)
# undef HAS_64BITS /* machine has 64-bit integers / operators */
# define HAS_LONGLONG /* machine has 32-bit/64-bit integers */
# define LITTLE_ENDIAN_ARCH /* machine stores bytes in "PC" order */
# define UNIX /* system is unix-based */
#endif
#if defined(HP)
# undef HAS_64BITS /* machine has 64-bit integers / operators */
# define HAS_LONGLONG /* machine has 32-bit/64-bit integers */
# undef LITTLE_ENDIAN_ARCH /* machine stores bytes in "PC" order */
# define UNIX /* system is unix-based */
#endif
#if defined(LINUX)
# undef HAS_64BITS /* machine has 64-bit integers / operators */
# define HAS_LONGLONG /* machine has 32-bit/64-bit integers */
# define LITTLE_ENDIAN_ARCH /* machine stores bytes in "PC" order */
# define UNIX /* system is unix-based */
#endif
#if defined(MIPS)
# undef HAS_64BITS /* machine has 64-bit integers / operators */
# define HAS_LONGLONG /* machine has 32-bit/64-bit integers */
# undef LITTLE_ENDIAN_ARCH /* machine stores bytes in "PC" order */
# define UNIX /* system is unix-based */
#endif
#if defined(NEXT)
# undef HAS_64BITS /* machine has 64-bit integers / operators */
# define HAS_LONGLONG /* machine has 32-bit/64-bit integers */
# undef LITTLE_ENDIAN_ARCH /* machine stores bytes in "PC" order */
# define UNIX /* system is unix-based */
#endif
#if defined(NT_AXP)
# undef HAS_64BITS /* machine has 64-bit integers / operators */
# define HAS_LONGLONG /* machine has 32-bit/64-bit integers */
# define LITTLE_ENDIAN_ARCH /* machine stores bytes in "PC" order */
# undef UNIX /* system is unix-based */
#endif
#if defined(NT_i386)
# undef HAS_64BITS /* machine has 64-bit integers / operators */
# define HAS_LONGLONG /* machine has 32-bit/64-bit integers */
# define LITTLE_ENDIAN_ARCH /* machine stores bytes in "PC" order */
# undef UNIX /* system is unix-based */
#endif
#if defined(OS2)
# undef HAS_64BITS /* machine has 64-bit integers / operators */
# define HAS_LONGLONG /* machine has 32-bit/64-bit integers */
# define LITTLE_ENDIAN_ARCH /* machine stores bytes in "PC" order */
# define UNIX /* system is unix-based */
#endif
#if defined(SGI)
# undef HAS_64BITS /* machine has 64-bit integers / operators */
# define HAS_LONGLONG /* machine has 32-bit/64-bit integers */
# undef LITTLE_ENDIAN_ARCH /* machine stores bytes in "PC" order *